/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package cardumen2d;

import java.awt.image.BufferedImage;
import java.util.ArrayList;

/**
 *
 * @author jorgeorm
 */
public class Pez {
    
    protected int x_pez, y_pez, EscenarioWidth, EscenarioHeight;
    protected int sentido, ordenImagen, imagenPez;
    protected int coletazos;
    
    

    public Pez(int widthEscen, int heightEscen) {
        EscenarioWidth = widthEscen;
        EscenarioHeight = heightEscen;
    }
    
    public void moverPez(int velocidad){
        
        switch(ordenImagen){
            case 0:
                imagenPez++;
                if(imagenPez==2){
                    ordenImagen=1;
                }
                break;
            case 1:
                imagenPez--;
                if(imagenPez==0){
                    ordenImagen=0;
                }
                break;
        }
        
        int hipo = (int) Math.round(Math.sqrt(2.0*Math.pow((double)velocidad, 2.0)));
        boolean flagHabil;
        do{
            switch(sentido){
                case 0:
                    x_pez-=velocidad;
                    y_pez-=velocidad;
                    if(x_pez <= 0 && y_pez <= 0){
                        sentido = 4;
                    }else if(x_pez <= 0){
                        sentido = 2;
                    }else if(y_pez <= 0){
                        sentido = 6;
                    }
                    break;
                case 1:
                    y_pez-=hipo;
                    if(y_pez <=0){
                        sentido = 5;
                    }
                    break;
                case 2:
                    x_pez+=velocidad;
                    y_pez-=velocidad;
                    if(x_pez >= EscenarioWidth && y_pez <= 0){
                        sentido = 6;
                    }else if(x_pez >= EscenarioWidth){
                        sentido = 0;
                    }else if(y_pez <=0){
                        sentido = 4;
                    }
                    break;
                case 3: 
                    x_pez+=hipo;
                    if(x_pez >= EscenarioWidth){
                        sentido = 7;
                    }
                    break;
                case 4: 
                    x_pez+=velocidad;
                    y_pez+=velocidad;
                    if(x_pez >= EscenarioWidth && y_pez >= EscenarioHeight){
                        sentido = 0;
                    }else if(x_pez >= EscenarioWidth){
                        sentido = 6;
                    }else if(y_pez >= EscenarioHeight){
                        sentido = 2;
                    }
                    break;
                case 5: 
                    y_pez+=hipo;
                    if(y_pez >= EscenarioHeight){
                        sentido = 1;
                    }
                    break;
                case 6: 
                    x_pez-=velocidad;
                    y_pez+=velocidad;
                    if(x_pez <= 0 && y_pez >= EscenarioHeight){
                        sentido = 2;
                    }else if(x_pez <= 0){
                        sentido = 4;
                    }else if(y_pez >= EscenarioHeight){
                        sentido = 0;
                    }
                    break;
                case 7: 
                    x_pez-=hipo;
                    if(x_pez <= 0){
                        sentido = 3;
                    }
                    break;
            }
            
            if(x_pez>=0 && x_pez<EscenarioWidth){
                flagHabil=true;
            }else{
                flagHabil=false;
            }
            if(y_pez>=0 && y_pez<EscenarioHeight){
                flagHabil&=true;
            }else{
                flagHabil&=false;
            }
        }while(!flagHabil);
    }

    public int getX_pez() {
        return x_pez;
    }

    public void setX_pez(int x_pez) {
        this.x_pez = x_pez;
    }

    public int getY_pez() {
        return y_pez;
    }

    public void setY_pez(int y_pez) {
        this.y_pez = y_pez;
    }

    public int getImagenPez() {
        return imagenPez;
    }

    public void setImagenPez(int imagenPez) {
        this.imagenPez = imagenPez;
    }
    
    public int getSentido(){
        return sentido;
    }
    
}
